TMCLocationRec Class Reference

List of all members.

Public Member Functions

 TMCLocationRec ()
TMCLocationRec * Clone () const
void SetLocation (const TVector3 &newLocation)
void SetNextControlDistance (const real32 dist)
void SetPrevControlDistance (const real32 dist)
void SetNextControlDirection (const TVector3 &dir)
void SetPrevControlDirection (const TVector3 &dir)
void SetNextControlLocation (const TVector3 &newNextControl)
void SetPrevControlLocation (const TVector3 &newPrevControl)
TVector3 & GetLocation ()
TVector3 & GetNextControlDirection ()
TVector3 & GetPrevControlDirection ()
real32 GetNextControlDistance ()
real32 GetPrevControlDistance ()
TVector3 GetNextControlLocation ()
TVector3 GetPrevControlLocation ()
TVector3 & GetNextVectorUp ()
TVector3 & GetPrevVectorUp ()
TVector3 & GetNextControlVectorUp ()
TVector3 & GetPrevControlVectorUp ()
void CopyDataFrom (const TMCLocationRec *from)
void CalcLinearApprox (TMCLocationRec *nextRec, int16 level=0, real posMin=0.0f, real posMax=1.0f)
void CalcApprox (TMCLocationRec *nextRec, TMCLocationRec *prevRec, TMCBezierPath *bezierPath)
void CalcLength (TMCLocationRec *nextRec)
void CalcNormalAcceleration (TMCLocationRec *nextRec, TMCLocationRec *prevRec)
void CalcVectorUp (TMCLocationRec *nextRec, TMCLocationRec *prevRec, const boolean isLinear)
void CalcPseudoCurv (TMCLocationRec *nextRec, TMCLocationRec *prevRec)
real DistanceToBezierPos (real linearDistance, TMCLocationRec *nextRec)
void Interpolate (real segmentBezierPos, TVector3 &outPoint, TMCLocationRec *nextRec)
void GetSpeed (real segmentBezierPos, TVector3 &point, TMCLocationRec *nextRec)
void GetAcceleration (real segmentBezierPos, TVector3 &point, TMCLocationRec *nextRec)
void GetNormalAcceleration (real segmentBezierPos, TVector3 &point, TMCLocationRec *nextRec)
void GetVectorUp (real segmentBezierPos, TVector3 &speed, TVector3 &point, TMCLocationRec *nextRec)
void Subdivide (real segmentBezierPos, TMCLocationRec *nextRec, TMCLocationRec &rec1, TMCLocationRec &rec2, TMCLocationRec &rec3)
void ConvertTangent ()
void ConvertTangentDerivative ()
void Link ()
void LinkDerivative ()
void UnLink ()
void Degenerate ()

Public Attributes

real fSegmentBeginPos
TVector3 fLocation
real fLength
real fLengthFactor
EBezierType fType
TMCArray< TVector3 > fLinearApprox
TMCArray< real > fLinearApproxDistance
TMCArray< real > fLinearApproxBezierPos
TMCArray< TVector3 > fNormalAcceleration
TVector3 fLastBankingV
 Not used ?

Protected Member Functions

real CalcError (TMCLocationRec *nextRec)

Protected Attributes

TVector3 fPrevControlVectorUp
TVector3 fPrevVectorUp
TVector3 fNextVectorUp
TVector3 fNextControlVectorUp
TVector3 fPrevControlDirection
TVector3 fNextControlDirection
real32 fPrevControlDistance
real32 fNextControlDistance

Detailed Description

A bezier point with its demi tangeants


Constructor & Destructor Documentation

TMCLocationRec::TMCLocationRec (   ) 
 


Member Function Documentation

void TMCLocationRec::CalcApprox (  TMCLocationRec *  nextRec,
TMCLocationRec *  prevRec,
TMCBezierPath *  bezierPath
) 
 

real TMCLocationRec::CalcError (  TMCLocationRec *  nextRec  )  [protected]
 

void TMCLocationRec::CalcLength (  TMCLocationRec *  nextRec  ) 
 

void TMCLocationRec::CalcLinearApprox (  TMCLocationRec *  nextRec,
int16  level = 0,
real  posMin = 0.0f,
real  posMax = 1.0f
) 
 

void TMCLocationRec::CalcNormalAcceleration (  TMCLocationRec *  nextRec,
TMCLocationRec *  prevRec
) 
 

void TMCLocationRec::CalcPseudoCurv (  TMCLocationRec *  nextRec,
TMCLocationRec *  prevRec
) 
 

void TMCLocationRec::CalcVectorUp (  TMCLocationRec *  nextRec,
TMCLocationRec *  prevRec,
const boolean  isLinear
) 
 

TMCLocationRec* TMCLocationRec::Clone (   )  const
 

void TMCLocationRec::ConvertTangent (   ) 
 

void TMCLocationRec::ConvertTangentDerivative (   ) 
 

void TMCLocationRec::CopyDataFrom (  const TMCLocationRec *  from  ) 
 

void TMCLocationRec::Degenerate (   ) 
 

real TMCLocationRec::DistanceToBezierPos (  real  linearDistance,
TMCLocationRec *  nextRec
) 
 

void TMCLocationRec::GetAcceleration (  real  segmentBezierPos,
TVector3 &  point,
TMCLocationRec *  nextRec
) 
 

Return 1/6th of the actual acceleration

TVector3& TMCLocationRec::GetLocation (   )  [inline]
 

TVector3& TMCLocationRec::GetNextControlDirection (   )  [inline]
 

real32 TMCLocationRec::GetNextControlDistance (   )  [inline]
 

TVector3 TMCLocationRec::GetNextControlLocation (   ) 
 

TVector3& TMCLocationRec::GetNextControlVectorUp (   )  [inline]
 

TVector3& TMCLocationRec::GetNextVectorUp (   )  [inline]
 

void TMCLocationRec::GetNormalAcceleration (  real  segmentBezierPos,
TVector3 &  point,
TMCLocationRec *  nextRec
) 
 

TVector3& TMCLocationRec::GetPrevControlDirection (   )  [inline]
 

real32 TMCLocationRec::GetPrevControlDistance (   )  [inline]
 

TVector3 TMCLocationRec::GetPrevControlLocation (   ) 
 

TVector3& TMCLocationRec::GetPrevControlVectorUp (   )  [inline]
 

TVector3& TMCLocationRec::GetPrevVectorUp (   )  [inline]
 

void TMCLocationRec::GetSpeed (  real  segmentBezierPos,
TVector3 &  point,
TMCLocationRec *  nextRec
) 
 

Return 1/3th of the actual speed

void TMCLocationRec::GetVectorUp (  real  segmentBezierPos,
TVector3 &  speed,
TVector3 &  point,
TMCLocationRec *  nextRec
) 
 

void TMCLocationRec::Interpolate (  real  segmentBezierPos,
TVector3 &  outPoint,
TMCLocationRec *  nextRec
) 
 

void TMCLocationRec::Link (   ) 
 

void TMCLocationRec::LinkDerivative (   ) 
 

void TMCLocationRec::SetLocation (  const TVector3 &  newLocation  )  [inline]
 

void TMCLocationRec::SetNextControlDirection (  const TVector3 &  dir  ) 
 

void TMCLocationRec::SetNextControlDistance (  const real32  dist  ) 
 

void TMCLocationRec::SetNextControlLocation (  const TVector3 &  newNextControl  ) 
 

void TMCLocationRec::SetPrevControlDirection (  const TVector3 &  dir  ) 
 

void TMCLocationRec::SetPrevControlDistance (  const real32  dist  ) 
 

void TMCLocationRec::SetPrevControlLocation (  const TVector3 &  newPrevControl  ) 
 

void TMCLocationRec::Subdivide (  real  segmentBezierPos,
TMCLocationRec *  nextRec,
TMCLocationRec &  rec1,
TMCLocationRec &  rec2,
TMCLocationRec &  rec3
) 
 

void TMCLocationRec::UnLink (   ) 
 


Member Data Documentation

TVector3 TMCLocationRec::fLastBankingV
 

Not used ?

real TMCLocationRec::fLength
 

real TMCLocationRec::fLengthFactor
 

TMCArray<TVector3> TMCLocationRec::fLinearApprox
 

TMCArray<real> TMCLocationRec::fLinearApproxBezierPos
 

TMCArray<real> TMCLocationRec::fLinearApproxDistance
 

TVector3 TMCLocationRec::fLocation
 

TVector3 TMCLocationRec::fNextControlDirection [protected]
 

real32 TMCLocationRec::fNextControlDistance [protected]
 

TVector3 TMCLocationRec::fNextControlVectorUp [protected]
 

TVector3 TMCLocationRec::fNextVectorUp [protected]
 

TMCArray<TVector3> TMCLocationRec::fNormalAcceleration
 

These values aren't exactly the normal acceleration: a smoothing is done to avoid discontinuity at the junction of 2 beziers curves.

TVector3 TMCLocationRec::fPrevControlDirection [protected]
 

PrevControl and NextControl relative to Location: a normalize vector and a distance => we are so able to keep a direction even if the distance is 0

real32 TMCLocationRec::fPrevControlDistance [protected]
 

TVector3 TMCLocationRec::fPrevControlVectorUp [protected]
 

The VectorUp is normal to the path and is used to define a base attached to the path. Its determination is based on the fNextVectorUp of the previous TMCLocationRec as this: it's the projection of the previous fVectorUp on the plane normal to the tangeant. There're 2 vector per TMCLocationRec because it can have a discontinuity. fNextVectorUp is computed from fPrevVectorUp

TVector3 TMCLocationRec::fPrevVectorUp [protected]
 

real TMCLocationRec::fSegmentBeginPos
 

EBezierType TMCLocationRec::fType
 


The documentation for this class was generated from the following file:
Generated on Wed Dec 7 14:27:47 2005 for Carrara SDK Doc by  doxygen 1.4.5